import Axios from 'axios'
import { getV4 } from '@/utils/uuidV4.js'

const Request = Axios.create({
	// 配置公共请求地址
	baseURL:'http://gmall-h5-api.atguigu.cn/api',
	// 请求超时时间
	timeout:'5000'
});

Request.interceptors.request.use(
	config=>{
		config.headers.userTempId = getV4()
		//记得一定要返回 config
		return config
	},
	err=>{
		console.log('请求错误',err)
		//记得一定要返回 err
		return err
	}
)

// 响应拦截器 - 包含响应成功 响应失败
Request.interceptors.response.use(
	// 响应成功 - 处理状态码与返回的信息
	(res) => {
		// 取出响应结果
		const data = res.data
		// 判断响应码
		if(data.code != 200){
			alert(data.message+'_响应错误'+'_详情见控制台')
			console.log(data)
			return Promise.reject(new Error(data.message))
		}
		return res
	},

	// 响应失败
	err => new Promise(new Error(err))
)


// Request	
// 直接暴露一个匿名函数, 三个重要参数
export default ({method,url,data}) => {
	return Request({
		method,
		url,
		// 若 method为post 则用 data,否则用param
		[method.toLowerCase() === "get"? 'param' : 'data' ]:data
	})
} 
